package pe.com.cotelasa.scp.controlador.backingBean;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.Locale;

import javax.faces.model.SelectItem;
import javax.inject.Named;

import org.springframework.context.annotation.Scope;

import pe.com.cotelasa.scp.dominio.common.ESTADO_LETRA_DE_CAMBIO;
import pe.com.cotelasa.scp.dominio.modelo.LetraPorPagarModel;
import pe.com.cotelasa.scp.entidad.CompraFacturacion;
import pe.com.cotelasa.scp.entidad.DetalleLetra;
import pe.com.cotelasa.scp.entidad.Letra;
import pe.com.cotelasa.scp.entidad.Proveedor;
import pe.com.cotelasa.scp.entidad.TipoMoneda;

@Named(value = "BKLetraPorPagar")
@Scope("session")
public class BKLetraPorPagar implements Serializable {

	private static final long serialVersionUID = -6976500413918029419L;
	private Collection<ESTADO_LETRA_DE_CAMBIO> mostrarListaEstadosLetra;
	private Collection<Proveedor> mostrarlistaProveedores;
	private Collection<TipoMoneda> mostrarListaTiposMoneda;
	private Collection<Letra> listaLetrasPorPagar;
	private Collection<CompraFacturacion> listaFacturasPorCobrar;;
	private Collection<CompraFacturacion> mostrarListaFacturas;

	private ESTADO_LETRA_DE_CAMBIO estadoSeleccionado;
	private TipoMoneda tipoMonedaSeleccionado;
	private Proveedor proveedorSeleccionado;
	private Date fechaVencimientoSeleccionado;
	private Integer bancoSeleccionado;

	private ESTADO_LETRA_DE_CAMBIO registrarEstado;
	private Proveedor registrarProveedor;
	private String registrarNumero;
	private TipoMoneda registrarTipoMoneda;
	private Date registrarFechaVencimiento;
	private BigDecimal montoTotal;
	private String numeroLetra;
	
	private List<SelectItem> comboProveedores;
	private List<SelectItem> comboTipoMonedas;
	private List<SelectItem> comboEstadoLetras;
	private List<SelectItem> comboBancos;
	
	private List<SelectItem> comboProveedoresBusqueda;
	private List<SelectItem> comboTipoMonedasBusqueda;
	private List<SelectItem> comboEstadoLetrasBusqueda;
	
	private Letra letraSeleccionada;
	private CompraFacturacion[] facturasSeleccionadas;
	private LetraPorPagarModel letraPorPagarModel;
	
	private List<DetalleLetra> listaDetalleLetra;
	
	private Locale locale = Locale.US;

	public BKLetraPorPagar() {
		this.montoTotal = new BigDecimal(0);
		proveedorSeleccionado = new Proveedor();
		tipoMonedaSeleccionado = new TipoMoneda();
		estadoSeleccionado = ESTADO_LETRA_DE_CAMBIO.SELECCIONE;
		comboProveedores = new ArrayList<SelectItem>();
		comboTipoMonedas = new ArrayList<SelectItem>();
		comboEstadoLetras = new ArrayList<SelectItem>();
		comboBancos = new ArrayList<SelectItem>();
		comboEstadoLetrasBusqueda = new ArrayList<SelectItem>();
		comboProveedoresBusqueda  = new ArrayList<SelectItem>();
		comboTipoMonedasBusqueda =  new ArrayList<SelectItem>();
		mostrarListaEstadosLetra = new ArrayList<ESTADO_LETRA_DE_CAMBIO>();
		listaDetalleLetra = new ArrayList<DetalleLetra>();
		for (ESTADO_LETRA_DE_CAMBIO estadoLetraDeCambio : ESTADO_LETRA_DE_CAMBIO.values()) {
			mostrarListaEstadosLetra.add(estadoLetraDeCambio);
		}
	}

	public Collection<Letra> getListaLetrasPorPagar() {
		return listaLetrasPorPagar;
	}

	public void setListaLetrasPorPagar(Collection<Letra> listaLetrasPorPagar) {
		this.listaLetrasPorPagar = listaLetrasPorPagar;
	}

	public Collection<ESTADO_LETRA_DE_CAMBIO> getMostrarListaEstadosLetra() {
		return mostrarListaEstadosLetra;
	}

	public void setMostrarListaEstadosLetra(Collection<ESTADO_LETRA_DE_CAMBIO> mostrarListaEstadosLetra) {
		this.mostrarListaEstadosLetra = mostrarListaEstadosLetra;
	}

	public Collection<Proveedor> getMostrarlistaProveedores() {
		return mostrarlistaProveedores;
	}

	public void setMostrarlistaProveedores(Collection<Proveedor> mostrarlistaProveedores) {
		this.mostrarlistaProveedores = mostrarlistaProveedores;
	}

	public Collection<TipoMoneda> getMostrarListaTiposMoneda() {
		return mostrarListaTiposMoneda;
	}

	public void setMostrarListaTiposMoneda(Collection<TipoMoneda> mostrarListaTiposMoneda) {
		this.mostrarListaTiposMoneda = mostrarListaTiposMoneda;
	}

	public ESTADO_LETRA_DE_CAMBIO getEstadoSeleccionado() {
		return estadoSeleccionado;
	}

	public void setEstadoSeleccionado(ESTADO_LETRA_DE_CAMBIO estadoSeleccionado) {
		this.estadoSeleccionado = estadoSeleccionado;
	}

	public TipoMoneda getTipoMonedaSeleccionado() {
		return tipoMonedaSeleccionado;
	}

	public void setTipoMonedaSeleccionado(TipoMoneda tipoMonedaSeleccionado) {
		this.tipoMonedaSeleccionado = tipoMonedaSeleccionado;
	}

	public Proveedor getProveedorSeleccionado() {
		return proveedorSeleccionado;
	}

	public void setProveedorSeleccionado(Proveedor proveedorSeleccionado) {
		this.proveedorSeleccionado = proveedorSeleccionado;
	}

	public Date getFechaVencimientoSeleccionado() {
		return fechaVencimientoSeleccionado;
	}

	public void setFechaVencimientoSeleccionado(Date fechaVencimientoSeleccionada) {
		this.fechaVencimientoSeleccionado = fechaVencimientoSeleccionada;
	}

	public ESTADO_LETRA_DE_CAMBIO getRegistrarEstado() {
		return registrarEstado;
	}

	public void setRegistrarEstado(ESTADO_LETRA_DE_CAMBIO registrarEstado) {
		this.registrarEstado = registrarEstado;
	}

	public Proveedor getRegistrarProveedor() {
		return registrarProveedor;
	}

	public void setRegistrarProveedor(Proveedor registrarProveedor) {
		this.registrarProveedor = registrarProveedor;
	}

	public String getRegistrarNumero() {
		return registrarNumero;
	}

	public void setRegistrarNumero(String registrarNumero) {
		this.registrarNumero = registrarNumero;
	}

	public TipoMoneda getRegistrarTipoMoneda() {
		return registrarTipoMoneda;
	}

	public void setRegistrarTipoMoneda(TipoMoneda registrarTipoMoneda) {
		this.registrarTipoMoneda = registrarTipoMoneda;
	}

	public Date getRegistrarFechaVencimiento() {
		return registrarFechaVencimiento;
	}

	public void setRegistrarFechaVencimiento(Date registrarFechaVencimiento) {
		this.registrarFechaVencimiento = registrarFechaVencimiento;
	}

	public Collection<CompraFacturacion> getMostrarListaFacturas() {
		return mostrarListaFacturas;
	}

	public void setMostrarListaFacturas(Collection<CompraFacturacion> mostrarListaFacturas) {
		this.mostrarListaFacturas = mostrarListaFacturas;
	}
	
	public Collection<CompraFacturacion> getListaFacturasPorCobrar() {
		return listaFacturasPorCobrar;
	}
	
	public void setListaFacturasPorCobrar(
			Collection<CompraFacturacion> listaFacturasPorCobrar) {
		this.listaFacturasPorCobrar = listaFacturasPorCobrar;
	}

	public List<SelectItem> getComboProveedores() {
		return comboProveedores;
	}
	
	public void setComboProveedores(List<SelectItem> comboProveedores) {
		this.comboProveedores = comboProveedores;
	}
	
	public List<SelectItem> getComboTipoMonedas() {
		return comboTipoMonedas;
	}
	
	public void setComboTipoMonedas(List<SelectItem> comboTipoMonedas) {
		this.comboTipoMonedas = comboTipoMonedas;
	}
	
	public List<SelectItem> getComboEstadoLetras() {
		return comboEstadoLetras;
	}
	
	public void setComboEstadoLetras(List<SelectItem> comboEstadoLetras) {
		this.comboEstadoLetras = comboEstadoLetras;
	}
	
	public CompraFacturacion[] getFacturasSeleccionadas() {
		return facturasSeleccionadas;
	}
	
	public void setFacturasSeleccionadas(
			CompraFacturacion[] facturasSeleccionadas) {
		this.facturasSeleccionadas = facturasSeleccionadas;
	}
	
	public LetraPorPagarModel getLetraPorPagarModel() {
		return letraPorPagarModel;
	}
	
	public void setLetraPorPagarModel(LetraPorPagarModel letraPorPagarModel) {
		this.letraPorPagarModel = letraPorPagarModel;
	}
	
	public List<SelectItem> getComboBancos() {
		return comboBancos;
	}
	
	public void setComboBancos(List<SelectItem> comboBancos) {
		this.comboBancos = comboBancos;
	}
	
	public Integer getBancoSeleccionado() {
		return bancoSeleccionado;
	}
	
	public void setBancoSeleccionado(Integer bancoSeleccionado) {
		this.bancoSeleccionado = bancoSeleccionado;
	}
	
	public BigDecimal getMontoTotal() {
		return montoTotal;
	}
	
	public void setMontoTotal(BigDecimal montoTotal) {
		this.montoTotal = montoTotal;
	}
	
	public String getNumeroLetra() {
		return numeroLetra;
	}
	
	public void setNumeroLetra(String numeroLetra) {
		this.numeroLetra = numeroLetra;
	}
	
	public List<SelectItem> getComboEstadoLetrasBusqueda() {
		return comboEstadoLetrasBusqueda;
	}
	
	public List<SelectItem> getComboProveedoresBusqueda() {
		return comboProveedoresBusqueda;
	}
	
	public List<SelectItem> getComboTipoMonedasBusqueda() {
		return comboTipoMonedasBusqueda;
	}
	
	public void setComboEstadoLetrasBusqueda(
			List<SelectItem> comboEstadoLetrasBusqueda) {
		this.comboEstadoLetrasBusqueda = comboEstadoLetrasBusqueda;
	}
	
	public void setComboProveedoresBusqueda(
			List<SelectItem> comboProveedoresBusqueda) {
		this.comboProveedoresBusqueda = comboProveedoresBusqueda;
	}
	
	public void setComboTipoMonedasBusqueda(
			List<SelectItem> comboTipoMonedasBusqueda) {
		this.comboTipoMonedasBusqueda = comboTipoMonedasBusqueda;
	}
	
	public Letra getLetraSeleccionada() {
		return letraSeleccionada;
	}
	
	public void setLetraSeleccionada(Letra letraSeleccionada) {
		this.letraSeleccionada = letraSeleccionada;
	}
	
	public Locale getLocale() {
		return locale;
	}
	
	public void setLocale(Locale locale) {
		this.locale = locale;
	}
	
	public List<DetalleLetra> getListaDetalleLetra() {
		return listaDetalleLetra;
	}
	
	public void setListaDetalleLetra(List<DetalleLetra> listaDetalleLetra) {
		this.listaDetalleLetra = listaDetalleLetra;
	}
}